The present invention relates generally to the field of data processing, and more particularly to assigning computing resources to various aspects of a workload.
Within various data center, grid computing, networked computing environment, and cloud computing architectures, workloads are comprised of a plurality of data and computing objects distributed among various computing resources of an architecture. Some computing system architectures store information utilizing “object storage.” Object storage stores information as objects which include metadata, such as user-defined and/or system-defined tags, which generate “smart” data objects. The metadata of these smart data objects is information rich and can describe, but is not limited to: the content of the data, relationships between the object and other objects, and constraints associated with the object, such as object security.
In an example architecture, object storage can be comprised of various types of entity/node groups. One node group, “proxy nodes,” are used for distributing workloads, handling workload requests within a namespace, and directing the transfer of objects that comprise the workload among nodes. A second node group, “storage nodes,” are responsible for storing data (e.g., objects), and writing data to disks and/or storage subsystems. A third node group, “computing nodes,” are utilized to process and analyze the data within storage nodes to extract meaningful information from the raw data. A workload within an object storage architecture can be initiated by: a user, a software app, such as a time-based batch file or script; a computing system; or a combination thereof. A workload within an object storage architecture can interact with a plurality of nodes prior to producing a result for the workload.
Virtual machines, software containers, executable procedures, and storlets can be included within a storage node to improve performance by reducing the number of computing nodes and associated network activity. Various embedded computing entities include isolation capabilities that enable multiple users to access and share the plurality of data, storage, and computing resources of a networked computing environment.